package com.ruyuan.eshop.common.client.payment;

import com.ruyuan.eshop.common.model.payment.dos.PaymentBillDO;
import com.ruyuan.eshop.common.model.payment.vo.PayBill;

import java.util.Map;

/**
 * 支付账单client
 * @author pwd
 * @version 1.0
 */
public interface PaymentBillClient {
    /**
     * 创建一个支付账单
     * @param paymentBill
     * @return
     */
    PayBill add(PaymentBillDO paymentBill);

    /**
     * 删除无用的支付账单
     *
     * @param billId 支付账单id
     */
    void deletePaymentBill(Long billId);

    /**
     * 关闭第三方交易
     *
     * @param paymentBillDO
     */
    void closeTrade(PaymentBillDO paymentBillDO);

    /**
     * 检测并且发送取消账单消息
     *
     * @param map key 为交易单号
     *            value 为支付类型
     */
    void sendCloseTradeMessage(Map<String, Object> map);
}
